package com.yc.demo.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 1. 继承 ： HttpServlet
 * 2. 重写 ： doGet ， doPost， doXXX
 * 3. 配置 ： 配置到服务器中
 * 			服务器端组件==》 组装的零件
 * 			1. 注解 @WebServlet
 * 			2. web.xml
 */
@WebServlet("/add.s")
public class AddServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// super.doGet(re, resp);
		// 调用 父类的 doGet 方法 
		// throw new ServletException(405);
		/**
		 * 	HttpServletRequest req		请求对象
		 * 		请求对象封装了浏览器发送过来的请求信息，包括：请求参数， 浏览器信息， 隐藏数据， HTTP规定的
			HttpServletResponse resp	响应对象
				请求对象提供了服务发给给浏览器信息，所需要方法
			ServletException 服务器内部业务逻辑异常
			IOException 发送或接收数据可能产生的异常
			
			get请求参数写在url地址中
			http://127.0.0.1:8080/工程名/路径/网页？参数列表
			参数列表格式： 参数名=参数值&参数名1=参数值1&参数名2=参数值2
			
			http://127.0.0.1/C94-S2-Ply-servlet/add.s?a=100&b=200
			
		 */
		
		String a = req.getParameter("a");
		String b = req.getParameter("b");
		
		int aa = a == null ? 0 : Integer.parseInt(a);
		int bb = b == null ? 0 : Integer.parseInt(b);
		
		// 解决响应结果显示源代码的问题
		resp.setContentType("text/html;charset=UTF-8");
		resp.getWriter().print("<h1>" + ( aa + bb ) + "</h1>");
		
		/**
		 * doGet ==》 HTTP GET 请求
		 * 		GET 特点： 请求参数写在URL地址中 => ?... ，  大小不操作1024字节
		 * 
		 * 		GET 方式： 地址栏输入， js location.href js open。。
		 * 				绝大多数的请求都是GET
		 * 
		 * doPost  ==》 HTTP POST 请求 
		 * 		POST 特点： 参数不写在URL地址中， 写在请求体中，没有大小的限制
		 * 		方式： 
		 * 			1. 表单提交？
		 * 			2. AJXA方式 
		 * 
		 */
		
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// 必须屏蔽该行代码
		// super.doPost(req, resp);
		
		String a = req.getParameter("a");
		String b = req.getParameter("b");
		
		int aa = a == null ? 0 : Integer.parseInt(a);
		int bb = b == null ? 0 : Integer.parseInt(b);
		
		// 解决响应结果显示源代码的问题
		resp.setContentType("text/html;charset=UTF-8");
		resp.getWriter().print("<h1>" + ( aa + bb ) + "</h1>");
	}
	
	
	
	
	
	
	
	
	
	

}
